/**
 * 题库管理相关API接口
 * 文档地址：
 * - 题库模板：https://s.apifox.cn/6b270d33-7c6d-461d-9e8d-feaf10324057/370909001e0.md
 * - 题库列表：https://s.apifox.cn/6b270d33-7c6d-461d-9e8d-feaf10324057/370919967e0.md
 * - 公式设定：https://s.apifox.cn/6b270d33-7c6d-461d-9e8d-feaf10324057/371183004e0.md
 */

import axios from 'axios'

export default {
  // ========== 题库模板 ==========
  /**
   * 添加/修改题库模板
   * @param {Object} data - 模板数据
   * @returns {Promise}
   */
  templateCreateOrUpdate(data) {
    return axios.post('/api/QuestionnaireVersion/add_questionnaire', data)
  },

  /**
   * 题库模板列表
   * @param {Object} params - 查询参数 {page, limit, ...}
   * @returns {Promise}
   */
  templateList(params) {
    return axios.get('/api/QuestionnaireVersion/index', { params })
  },

  /**
   * 删除题库模板
   * @param {Object} data - {id: 模板ID}
   * @returns {Promise}
   */
  templateDelete(data) {
    return axios.post('/api/QuestionnaireVersion/questionnaire_delete', data)
  },

  /**
   * 恢复-删除题库模板
   * @param {Object} data - {id: 模板ID}
   * @returns {Promise}
   */
  templateRestore(data) {
    return axios.post('/api/QuestionnaireVersion/questionnaire_delete', data)
  },

  /**
   * 题库分类列表
   * @param {Object} params - 查询参数
   * @returns {Promise}
   */
  categoryList(params) {
    return axios.get('/api/SubjectCategory/index', { params })
  },

  /**
   * 题库分类详情
   * @param {Object} params - {id: 分类ID}
   * @returns {Promise}
   */
  categoryDetail(params) {
    return axios.get('/api/SubjectCategory/read', { params })
  },

  /**
   * 删除题库分类
   * @param {Object} data - {id: 分类ID}
   * @returns {Promise}
   */
  categoryDelete(data) {
    return axios.post('/api/SubjectCategory/delete', data)
  },

  /**
   * 添加/修改题库分类
   * @param {Object} data - 分类数据
   * @returns {Promise}
   */
  categoryCreateOrUpdate(data) {
    return axios.post('/api/SubjectCategory/save', data)
  },

  // ========== 题库列表 ==========
  /**
   * 题库列表
   * @param {Object} params - 查询参数 {page, limit, ...}
   * @returns {Promise}
   */
  list(params) {
    return axios.get('/api/subject.SubjectList/index', { params })
  },

  // ========== 公式设定 ==========
  /**
   * 获取变量列表
   * @returns {Promise}
   */
  getVariables() {
    return axios.get('/api/GradeSet/get_variables')
  },

  /**
   * 获取运算符列表
   * @returns {Promise}
   */
  getOperators() {
    return axios.get('/api/GradeSet/getOperators')
  },

  /**
   * 获取之前的运算规则
   * @param {Object} params - {id: 规则ID}
   * @returns {Promise}
   */
  getFormulaRules(params) {
    return axios.get('/api/GradeSet/get_rule', { params })
  },

  /**
   * 获取之前的运算规则 Copy
   * @param {Object} params - {id: 规则ID}
   * @returns {Promise}
   */
  getFormulaRulesCopy(params) {
    return axios.get('/api/GradeSet/save_rule', { params })
  },

  /**
   * 获取函数
   * @returns {Promise}
   */
  getFunctions() {
    return axios.get('/api/GradeSet/getFunctions')
  }
}

